package com.sky.service;

import com.sky.dto.DishDTO;
import com.sky.dto.DishPageQueryDTO;
import com.sky.entity.Dish;
import com.sky.result.PageResult;
import com.sky.vo.DishVO;

import java.util.List;

public interface DishService {

    /**
     * 菜品分页查询
     * @param dishPageQueryDTO 菜品分页查询条件
     * @return 分页查询结果
     */
    PageResult getDishPage(DishPageQueryDTO dishPageQueryDTO);

    /**
     * 新增菜品
     * @param dishDTO 菜品信息
     */
    void addDish(DishDTO dishDTO);

    /**
     * 根据 ID 查询菜品
     * @param id 菜品id
     * @return 菜品信息以及关联的口味信息
     */
    DishVO getDishById(Long id);

    /**
     * 更新菜品
     * @param dishDTO 菜品信息
     */
    void updateDish(DishDTO dishDTO);

    /**
     * 更新菜品状态
     * @param status 状态
     * @param id 菜品id
     */
    void updateDishStatus(Integer status, Long id);

    /**
     * 删除菜品
     * @param ids 菜品id集合
     */
    void deleteDish(List<Long> ids);

    /**
     * 查询带有口味的菜品列表
     * @param dish 菜品实体
     * @return 菜品列表
     */
    List<DishVO> getDishListWithFlavor(Dish dish);
}
